<?php
if($access_control != "3tgbuh9gbufwd"){header("location: ?pag=");}

$transacao = new transacao();
if(valida::numero($_GET["id"]) && $_GET["id"] != ''){
    $transacao->carregar($_GET["id"]);
}

$_SESSION["id_retorno"] = "";
$_SESSION["ret_cont"] = 0;
function linhaProcessada($self, $numLn, $vlinha) {
    if($vlinha){
        if($vlinha["registro"] == $self::DETALHE) {
            $cont = $_SESSION["ret_cont"];
            $cant = $_SESSION["ret_cont"] -1;
            
            if($_SESSION["retorno"][$cant]["nosso_numero"] != '' && $vlinha["nosso_numero"] == '' && $cont > 0){
                $_SESSION["retorno"][$cant]["data_ocorrencia"] = $vlinha["data_ocorrencia"];

                if($vlinha["valor_pago"]){
                    $_SESSION["retorno"][$cant]["valor"] = $vlinha["valor_pago"];
                }else{
                    $_SESSION["retorno"][$cant]["valor"] = $vlinha["valor_recebido"];
                }
            }else{
                $_SESSION["retorno"][$cont]["nosso_numero"] = $vlinha["nosso_numero"];
                $_SESSION["retorno"][$cont]["data_ocorrencia"] = $vlinha["data_ocorrencia"];

                if($vlinha["valor_pago"]){
                    $_SESSION["retorno"][$cont]["valor"] = $vlinha["valor_pago"];
                }else{
                    $_SESSION["retorno"][$cont]["valor"] = $vlinha["valor_recebido"];
                }

                $_SESSION["ret_cont"]++;
            }
        }
    }else{
        echo "<label class='falha'>Tipo da linha n&atilde;o identificado<br/></label>\n";
    }
}
/*
if($_POST["btn_enviar"] == "Enviar"){
    $erro = 0;
    echo "<div class='alerta'>";
    if($_FILES["arquivo"]["name"] != '' && $_FILES["arquivo"]["error"] == 0){
        $nome = $_FILES["arquivo"]["name"];
        if(move_uploaded_file($_FILES["arquivo"]["tmp_name"], "retorno/$nome")){
            require_once("controle/retorno_boleto/RetornoBanco.php");
            require_once("controle/retorno_boleto/RetornoFactory.php");
            
            $_SESSION["convenio"] = NULL;
            $cnab = RetornoFactory::getRetorno("retorno/".$nome, "linhaProcessada");
            $retorno = new RetornoBanco($cnab);
            $retorno->processar();
        }else{
            echo "<label class='falha'>Erro ao processar o arquivo</label>";
            $erro = 1;
        }
    }else{
        echo "<label class='falha'>Sem arquivo</label>";
        $erro = 1;
    }
    
    $qnt_registros_modificados = 0;
    if(isset($_SESSION["convenio"])){
        $_SESSION["convenio"] = substr($_SESSION["convenio"], 2, 7);
    }
    for($i = 0; $i < $_SESSION["ret_cont"]; $i++){
        if(isset($_SESSION["convenio"])){
            if(substr($_SESSION["retorno"][$i]['nosso_numero'], 0, strlen($_SESSION["convenio"])) == $_SESSION["convenio"]){
                $_SESSION["retorno"][$i]['nosso_numero'] = substr($_SESSION["retorno"][$i]['nosso_numero'], strlen($_SESSION["convenio"]));
            }
        }
        $_SESSION["retorno"][$i]['nosso_numero'] = str_replace(' ','',$_SESSION["retorno"][$i]['nosso_numero']);
        
        if(valida::numero($_SESSION["retorno"][$i]['nosso_numero']) && valida::float($_SESSION["retorno"][$i]["valor"]) && valida::data($_SESSION["retorno"][$i]["data_ocorrencia"])){
            $db = new db(config::$driver);
            $con = $db->conecta();
            $sql_select = "SELECT count(*) FROM transacao WHERE id = '".$_SESSION["retorno"][$i]['nosso_numero']."' AND data_processamento IS NULL";
            $sql_replace = "REPLACE INTO transacao(id, valor_pago, data_ocorrencia) VALUES('".$_SESSION["retorno"][$i]['nosso_numero']."', '".$_SESSION["retorno"][$i]["valor"]."', '".data_inter($_SESSION["retorno"][$i]["data_ocorrencia"])."')";
            $sql_update = "UPDATE transacao SET valor_pago = '".$_SESSION["retorno"][$i]["valor"]."', data_ocorrencia = '".data_inter($_SESSION["retorno"][$i]["data_ocorrencia"])."', data_processamento = '".date("Y-m-d H:i:s")."' WHERE id = '".$_SESSION["retorno"][$i]["nosso_numero"]."'";
            
            if($_SESSION["id_retorno"] != ""){
                $_SESSION["id_retorno"] .= ",";
            }
            $_SESSION["id_retorno"] .= $_SESSION["retorno"][$i]["nosso_numero"];
            
            $res = $db->query($sql_select, $con);
            $id = $db->fetch_array($res);
            if($id[0] > 0){
                if($db->query($sql_update, $con)){
                    $qnt_registros_modificados++;
                }
            }
            $db->close($con);
        }else{
            echo "<label class='falha'>Falha ao salvar: ".
            "Nosso N&uacute;mero <b>".$_SESSION["retorno"][$i]['nosso_numero']."</b> ".
            "Data <b>".$_SESSION["retorno"][$i]["data_ocorrencia"]."</b> ". 
            "Valor Pago <b>".$_SESSION["retorno"][$i]["valor"]."</b><br/></label>\n";
            $erro = 1;
        }
    }
    $qnt_registros_processados = $i;
    
    if($erro == 0){
        echo "<label class='sucesso'>Arquivo de retorno $nome processado com sucesso!</label><br>";
        echo "<label class='sucesso'>$qnt_registros_processados registros processados e $qnt_registros_modificados modificados.</label><br>";
    }
    echo "</div>";
}
*/

if($_POST["btn_enviar"] == "Enviar"){
    $erro = 0;
    echo "<div class='alerta'>";
    if($_FILES["arquivo"]["name"] != '' && $_FILES["arquivo"]["error"] == 0){
        $nome = $_FILES["arquivo"]["name"];
        if(move_uploaded_file($_FILES["arquivo"]["tmp_name"], "retorno/$nome")){
            require_once("controle/retorno_boleto_aw/class_retorno.php");
            
            $_SESSION["convenio"] = NULL;
            $ret = new Retorno("retorno/$nome");
			if($ret->GetTipo()){
		        $registros = $ret->GetRegistros();
		        
		        $qnt_registros_modificados = 0;
		        for($i = 0; $i < count($registros) -1; $i++){
		            if(valida::numero($registros[$i]['nosso_numero']) && valida::float($registros[$i]["valor_pago"])/* && valida::data($registros[$i]["data_pagamento"])*/){
		                $db = new db(config::$driver);
		                $con = $db->conecta();
		                $sql_select = "SELECT count(*) FROM transacao WHERE id = '".$registros[$i]['nosso_numero']."' AND data_processamento IS NULL";
		                $sql_replace = "REPLACE INTO transacao(id, valor_pago, data_ocorrencia) VALUES('".$registros[$i]['nosso_numero']."', '".$registros[$i]["valor_pago"]."', '".data_inter($registros[$i]["data_pagamento"])."')";
		                $sql_update = "UPDATE transacao SET valor_pago = '".$registros[$i]["valor_pago"]."', data_ocorrencia = '".data_inter($registros[$i]["data_pagamento"])."', data_processamento = '".date("Y-m-d H:i:s")."' WHERE id = '".$registros[$i]["nosso_numero"]."'";

		                $res = $db->query($sql_select, $con);
		                $id = $db->fetch_array($res);
		                if($id[0] > 0){
		                    if($db->query($sql_update, $con)){
		                        $qnt_registros_modificados++;
		                    }
		                }

		                $db->close($con);
		            }else{
		                echo "<label class='falha'>Falha ao salvar: ".
		                "Nosso N&uacute;mero <b>".$registros[$i]['nosso_numero']."</b> ".
		                "Data <b>".$registros[$i]["data_ocorrencia"]."</b> ". 
		                "Valor Pago <b>".$registros[$i]["valor"]."</b><br/></label>\n";
		                $erro = 1;
		            }
		        }
		        $qnt_registros_processados = $i;
            }else{
				echo "<label class='falha'>Arquivo não esperado pelo sistema</label>";
	            $erro = 1;
			}
        }else{
            echo "<label class='falha'>Erro ao processar o arquivo</label>";
            $erro = 1;
        }
    }else{
        echo "<label class='falha'>Sem arquivo</label>";
        $erro = 1;
    }
    
    if($erro == 0){
        echo "<label class='sucesso'>Arquivo de retorno $nome processado com sucesso!</label><br>";
        echo "<label class='sucesso'>$qnt_registros_processados registros processados e $qnt_registros_modificados modificados.</label><br>";
    }
    echo "</div>";
}

if($_POST["btn_salvar"] == "Salvar"){
    $erro = 0;
    
    if(!$transacao->set_valor_documento(   $_POST["valor_doc"])){ $erro = 1; }
    if(!$transacao->set_data_vencimento(   $_POST["dt_venc"]  )){ $erro = 1; }
    if(!$transacao->set_valor_pago(        $_POST["valor_pg"] )){ $erro = 1; }
    if(!$transacao->set_data_ocorrencia(   $_POST["dt_pag"]   )){ $erro = 1; }
    if(!$transacao->set_data_processamento($_POST["dt_proc"]  )){ $erro = 1; }
    
    if($erro == 0){
        if($transacao->salvar()){
            echo "
            <script>
                alert('Transação salva com sucesso!');
                location.href='?pag=tr';
            </script>";
        }else{
            echo "
            <script>
                alert('Falha ao salvar a transação!');
            </script>";
        }
    }else{
        echo "
        <script>
            alert('Preencha os campos corretamente!');
        </script>";
    }
}

function mostraTransacao(){
    $sql = "SELECT * FROM transacao";
    
    if($_SESSION["id_retorno"] != ''){
        $sql .= " WHERE id IN(".$_SESSION["id_retorno"].")";
    }else{
        $sql .= " ORDER BY id DESC LIMIT 1000";
    }
    
    $db = new db(config::$driver);
    $con = $db->conecta();
    $res = $db->query($sql, $con);
    $db->close($con);
    $cnt = 0;
    $c = 0;
    while($transacao = $db->fetch_array($res)){
        
        if($cnt == 0){
            $class = "zb1";
            $cnt = 1;
        }else{
            $class = "zb2";
            $cnt = 0;
        }
        
        echo "
            <tr class='$class'>
                <td>".$transacao["id"]."</td>
                <td>".$transacao["valor_documento"]."</td>
                <td>".data_ptbr($transacao["data_vencimento"])."</td>
                <td>".$transacao["valor_pago"]."</td>
                <td>".data_ptbr($transacao["data_ocorrencia"])."</td>
                <td>".data_ptbr($transacao["data_processamento"])."</td>
                <td><a href='?pag=vt&id=".$transacao["id"]."' title='Ver transação'>Ver</a></td>
            </tr>";
        $c++;
    }
    if ($c == 0){
        echo "
            <tr><td colspan='6'>Nenhuma Transação</td></tr>
            ";
    }
    echo '<strong>'.$c.'</strong>';        
}
